﻿using Microsoft.Xna.Framework;
using ShevaEngine.Core.Interfaces;
using ShevaEngine.Core.Modules.Scenes;

namespace ShevaEngine.Core.Modules.ArtificialIntelligence.Tasks
{
    /// <summary>
    /// Entity task.
    /// </summary>
    public abstract class AITask : IUpdateAble
    {
        /// <summary>Scene object.</summary>
        public SceneObject SceneObject;

        /// <summary>
        /// Constructor.
        /// </summary>
        public AITask(SceneObject sceneObject)
        {
            this.SceneObject = sceneObject;
        }

        /// <summary>
        /// Method activates task.
        /// </summary>
        public virtual void Activate() { }

        /// <summary>
        /// Method deactivates task.
        /// </summary>
        public virtual void Deactivate() { }

        /// <summary>
        /// Method Update().
        /// </summary>
        /// <param name="time"></param>
        public virtual void Update(GameTime time) { }

        /// <summary>
        /// Method sets new task.
        /// </summary>
        public void SetNewTask(AITask newTask)
        {
            
        }
    }
}
